Intuitive Constraint-Based Robot Programming For Robotic Assembly Tasks